package com.lft.juc06.subsidiary;

import java.util.concurrent.CountDownLatch;

/**
 * 计数器——“倒数计数器”
 */
public class TestCountDownLatch {
	public static void main(String[] args) {
		// 计数器，总数是6，必须要执行任务的时候，再使用。
		CountDownLatch countDownLatch = new CountDownLatch(6);
		System.out.println("打开门");
		for (int i = 1; i <= 6; i++) {
			new Thread(() -> {
				System.out.println(Thread.currentThread().getName() + " --> 出去了");
				// 计数器 -1
				countDownLatch.countDown();
			}, String.valueOf(i)).start();
		}
		try {
			// 等待计数器归零，再向下执行
			countDownLatch.await();
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
		// 上面的计数器归零后，才会执行这条代码。
		System.out.println("关上门");
	}
}
